using System;
using System.Collections.Generic;

namespace Domain.DTOs.RBAC
{
    /// <summary>
    /// 角色数据传输对象
    /// 原DTO名: RoleDTO（字段命名已规范化）
    /// </summary>
    public class RoleDTO
    {
        /// <summary>
        /// 角色ID（主键）
        /// 原字段名: Roleid
        /// 修改后字段名: Id
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 角色编号（业务唯一标识）
        /// 新增字段
        /// </summary>
        public string RoleCode { get; set; }

        /// <summary>
        /// 角色名称
        /// 原字段名: Rolename
        /// 修改后字段名: RoleName
        /// </summary>
        public string RoleName { get; set; }

        /// <summary>
        /// 角色描述
        /// 新增字段
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// 角色状态（1-启用，0-禁用）
        /// 新增字段
        /// </summary>
        public int Status { get; set; }



        /// <summary>
        /// 排序号
        /// 新增字段
        /// </summary>
        public int Sort { get; set; }

        /// <summary>
        /// 数据权限范围
        /// 新增字段
        /// 1-全部，2-本部门及下级，3-本部门，4-仅本人
        /// </summary>
        public int DataScope { get; set; }

        /// <summary>
        /// 自定义部门权限（部门ID集合）
        /// 新增字段
        /// </summary>
        public string? DeptIds { get; set; }

        /// <summary>
        /// 是否系统内置角色
        /// 新增字段
        /// </summary>
        public bool IsBuiltIn { get; set; }

        /// <summary>
        /// 角色类型（1-管理员，2-普通角色，3-访客）
        /// 新增字段
        /// </summary>
        public int RoleType { get; set; }

        /// <summary>
        /// 角色类型文本
        /// 新增字段：便于前端显示
        /// </summary>
        public string? RoleTypeText { get; set; }

        /// <summary>
        /// 备注信息
        /// 新增字段
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 创建时间
        /// 新增字段：审计信息
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 创建人
        /// 新增字段：审计信息
        /// </summary>
        public string? CreateName { get; set; }

        /// <summary>
        /// 修改时间
        /// 新增字段：审计信息
        /// </summary>
        public DateTime? UpdateDate { get; set; }

        /// <summary>
        /// 修改人
        /// 新增字段：审计信息
        /// </summary>
        public string? UpdateName { get; set; }

        // /// <summary>
        // /// 角色关联的权限ID列表
        // /// 新增字段：便于权限管理
        // /// </summary>
        // public List<long>? PermissionIds { get; set; }

        // /// <summary>
        // /// 角色关联的权限列表
        // /// 新增字段：便于权限展示
        // /// </summary>
        // public List<PermissionDTO>? Permissions { get; set; }
    }
}

